package ru.chezclif.lern.conread.exceptions;

import ru.chezclif.lern.conread.Preconditions;

/**
 * Класс передающий исключение об ошибках при разборе (парсинге) строк в файлах настроек
 * 
 * @author Vit
 */
public class IncorrectStringException extends PropertiesReadException {
	/**
	 * Строка содержащая ошибку
	 */
	private final String errorString;

	/**
	 * Передать сообщение об ошибке, с указанием строки, в которой произошла ошибка
	 * 
	 * @param errorString строка содержащая ошибку
	 */
	public IncorrectStringException(String errorString) {
		super("Can not parse this string: " + errorString);
		Preconditions.notBlank(errorString);
		this.errorString = errorString;
	}

	/**
	 * Передать исключение и ошибку, с указанием строки, в которой она произошла
	 * 
	 * @param e исключение
	 * @param errorString строка содержащая ошибку
	 */
	public IncorrectStringException(Throwable e, String errorString) {
		super(e);
		Preconditions.notNull(e);
		Preconditions.notBlank(errorString);
		this.errorString = errorString;
	}

	/**
	 *  Возвращает значение строки, в которой произошла ошибка
	 */
	public String getErrorString() {
		return errorString;
	}
}
